<?php
/* ###############################################################################
 *
 * $Id: log.php 44 2014-10-11 15:30:51Z expertsoftware.i@gmail.com $
 *
 * システム名
 *   PHP Web フレームワーク [Ponzu]
 *
 * 機能
 *   ログ ライブラリ
 *
 * バージョン
 *   0.0.0_0
 *
 * ライセンス
 *   LGPL v2.0
 *
 * 履歴
 *   2007/07/01 K.Sonohara
 *     新規作成。
 *
 * ###############################################################################*/

/**
 * ログファイル出力
 *
 * 利用にはログ出力先の「LOG_HOME」を定義する必要あり
 * @access public
 * @param server _SERVER環境変数を指定
 */
function outputLog($server) {
  // 出力内容
  $logs = array();
  $logs["TIME"] = "TIME";
  $logs["HTTP_USER_AGENT"] = "HTTP_USER_AGENT";
  $logs["REQUEST_METHOD"]  = "REQUEST_METHOD";
  $logs["REQUEST_URI"]     = "REQUEST_URI";
  $logs["REMOTE_ADDR"]     = "REMOTE_ADDR";
  $logs["REMOTE_NAME"]     = "REMOTE_NAME";
  $logs["HTTP_REFERER"]    = "HTTP_REFERER";
  $logs["USER"]            = "";

	foreach($logs as $key){
		if (isset($server[$key])) {
			$logs[$key] = inputValue($server[$key]);
		} else {
			$logs[$key] = "";
		}
	}
	$logs["TIME"] = date("Y/m/d H:i:s");
  if (isset($_SESSION[SESSION_USER])) {
    $logs["USER"] = $_SESSION[SESSION_USER];
  }

//	if (!checkdnsrr($server["REMOTE_ADDR"])) {
		$logs["REMOTE_NAME"] = gethostbyaddr($logs["REMOTE_ADDR"]);
//	} else {
//		$logs["REMOTE_NAME"] = ".IP Only";
//	}

	$fp = fopen(LOG_HOME."access".date("_Ymd").".log", "a");
	flock($fp, LOCK_EX);
	fputs($fp, implode("|",$logs)."\n");

	fclose($fp);
}

function listLog() {
  if ( $handle = opendir(LOG_HOME) ) {
    while (false !== ($file_list[] = readdir($handle))) ;
    closedir( $handle );
    rsort($file_list);
    return $file_list;
  }

  return null;
}

function debug_dump($o)
{
   ob_start();
   var_dump($o);
   $r = ob_get_contents();
   ob_end_clean();
   return $r;
}?>
